home *** CD-ROM | disk | FTP | other *** search
- /*
- File: OSUtils.h
-
- Copyright: © 1983-1993 by Apple Computer, Inc.
- All rights reserved.
-
- Version: System 7.1 for ETO #11
- Created: Tuesday, March 30, 1993 18:00
-
- */
-
- #ifndef __OSUTILS__
- #define __OSUTILS__
-
- #ifndef __TYPES__
- #include <Types.h>
- #endif
-
- enum {
-
- useFree = 0,
- useATalk = 1,
- useAsync = 2,
- useExtClk = 3, /*Externally clocked*/
- useMIDI = 4,
-
- /**** Environs Equates ****/
- curSysEnvVers = 2, /*Updated to equal latest SysEnvirons version*/
-
- /* Machine Types */
- envMac = -1,
- envXL = -2,
- envMachUnknown = 0,
- env512KE = 1,
- envMacPlus = 2,
- envSE = 3,
- envMacII = 4,
- envMacIIx = 5,
- envMacIIcx = 6,
- envSE30 = 7,
- envPortable = 8,
- envMacIIci = 9,
- envMacIIfx = 11,
-
- /* CPU types */
- envCPUUnknown = 0
- };
- enum {
- env68000 = 1,
- env68010 = 2,
- env68020 = 3,
- env68030 = 4,
- env68040 = 5,
-
- /* Keyboard types */
- envUnknownKbd = 0,
- envMacKbd = 1,
- envMacAndPad = 2,
- envMacPlusKbd = 3,
- envAExtendKbd = 4,
- envStandADBKbd = 5,
- envPrtblADBKbd = 6,
- envPrtblISOKbd = 7,
- envStdISOADBKbd = 8,
- envExtISOADBKbd = 9,
- false32b = 0, /*24 bit addressing error*/
- true32b = 1, /*32 bit addressing error*/
-
- /* result types for RelString Call */
- sortsBefore = -1, /*first string < second string*/
- sortsEqual = 0, /*first string = second string*/
- sortsAfter = 1 /*first string > second string*/
- };
-
- enum {
-
- /* Toggle results */
- toggleUndefined = 0,
- toggleOK = 1,
- toggleBadField = 2,
- toggleBadDelta = 3,
- toggleBadChar = 4,
- toggleUnknown = 5,
- toggleBadNum = 6,
- toggleOutOfRange = 7, /*synonym for toggleErr3*/
- toggleErr3 = 7,
- toggleErr4 = 8,
- toggleErr5 = 9,
-
- /* Date equates */
- smallDateBit = 31, /*Restrict valid date/time to range of Time global*/
- togChar12HourBit = 30, /*If toggling hour by char, accept hours 1..12 only*/
- togCharZCycleBit = 29, /*Modifier for togChar12HourBit: accept hours 0..11 only*/
- togDelta12HourBit = 28, /*If toggling hour up/down, restrict to 12-hour range (am/pm)*/
- genCdevRangeBit = 27, /*Restrict date/time to range used by genl CDEV*/
- validDateFields = -1,
- maxDateField = 10,
-
- eraMask = 0x0001,
- yearMask = 0x0002,
- monthMask = 0x0004,
- dayMask = 0x0008,
- hourMask = 0x0010,
- minuteMask = 0x0020,
- secondMask = 0x0040,
- dayOfWeekMask = 0x0080,
- dayOfYearMask = 0x0100,
- weekOfYearMask = 0x0200,
- pmMask = 0x0400,
- dateStdMask = 0x007F /*default for ValidDate flags and ToggleDate TogglePB.togFlags*/
-
- };
-
- enum {eraField,yearField,monthField,dayField,hourField,minuteField,secondField,
- dayOfWeekField,dayOfYearField,weekOfYearField,pmField,res1Field,res2Field,
- res3Field};
- typedef unsigned char LongDateField;
-
- enum {dummyType,vType,ioQType,drvQType,evType,fsQType,sIQType,dtQType};
- typedef unsigned short QTypes;
-
- enum {OSTrap,ToolTrap};
- typedef unsigned char TrapType;
-
-
- struct SysParmType {
- char valid;
- char aTalkA;
- char aTalkB;
- char config;
- short portA;
- short portB;
- long alarm;
- short font;
- short kbdPrint;
- short volClik;
- short misc;
- };
-
- typedef struct SysParmType SysParmType;
- typedef SysParmType *SysPPtr;
-
- struct QElem {
- struct QElem *qLink;
- short qType;
- short qData[1];
- };
-
- typedef struct QElem QElem;
- typedef QElem *QElemPtr;
-
- struct QHdr {
- short qFlags;
- QElemPtr qHead;
- QElemPtr qTail;
- };
-
- typedef struct QHdr QHdr;
- typedef QHdr *QHdrPtr;
-
- struct SysEnvRec {
- short environsVersion;
- short machineType;
- short systemVersion;
- short processor;
- Boolean hasFPU;
- Boolean hasColorQD;
- short keyBoardType;
- short atDrvrVersNum;
- short sysVRefNum;
- };
-
- typedef struct SysEnvRec SysEnvRec;
-
- struct MachineLocation {
- Fract latitude;
- Fract longitude;
- union{
- char dlsDelta; /*signed byte; daylight savings delta*/
- long gmtDelta; /*must mask - see documentation*/
- }gmtFlags;
- };
-
- typedef struct MachineLocation MachineLocation;
-
- struct DateTimeRec {
- short year;
- short month;
- short day;
- short hour;
- short minute;
- short second;
- short dayOfWeek;
- };
-
- typedef struct DateTimeRec DateTimeRec;
-
-
- typedef comp LongDateTime;
-
- union LongDateCvt {
- comp c;
- struct {
- long lHigh;
- long lLow;
- } hl;
- };
-
- typedef union LongDateCvt LongDateCvt;
-
- union LongDateRec {
- struct {
- short era;
- short year;
- short month;
- short day;
- short hour;
- short minute;
- short second;
- short dayOfWeek;
- short dayOfYear;
- short weekOfYear;
- short pm;
- short res1;
- short res2;
- short res3;
- } ld;
- short list[14]; /*Index by LongDateField!*/
- struct {
- short eraAlt;
- DateTimeRec oldDate;
- } od;
- };
-
- typedef union LongDateRec LongDateRec;
-
-
- typedef char DateDelta;
-
- struct TogglePB {
- long togFlags; /*caller normally sets low word to dateStdMask=$7F*/
- ResType amChars; /*from 'itl0', but uppercased*/
- ResType pmChars; /*from 'itl0', but uppercased*/
- long reserved[4];
- };
-
- typedef struct TogglePB TogglePB;
-
- typedef short ToggleResults;
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- pascal void LongDateToSeconds(const LongDateRec *lDate,LongDateTime *lSecs)
- = {0x2F3C,0x8008,0xFFF2,0xA8B5};
- pascal void LongDate2Secs(const LongDateRec *lDate,LongDateTime *lSecs)
- = {0x2F3C,0x8008,0xFFF2,0xA8B5};
- pascal void LongSecondsToDate(LongDateTime *lSecs,LongDateRec *lDate)
- = {0x2F3C,0x8008,0xFFF0,0xA8B5};
- pascal void LongSecs2Date(LongDateTime *lSecs,LongDateRec *lDate)
- = {0x2F3C,0x8008,0xFFF0,0xA8B5};
- pascal ToggleResults ToggleDate(LongDateTime *lSecs,LongDateField field,
- DateDelta delta,short ch,const TogglePB *params)
- = {0x2F3C,0x820E,0xFFEE,0xA8B5};
-
- pascal short ValidDate(const LongDateRec *vDate,long flags,LongDateTime *newSecs)
- = {0x2F3C,0x820C,0xFFE4,0xA8B5};
-
- pascal Boolean IsMetric(void)
- = {0x3F3C,0x0004,0xA9ED};
- pascal Boolean IUMetric(void) /* obsolete name */
- = {0x3F3C,0x0004,0xA9ED};
-
-
- #pragma parameter __D0 ReadDateTime(__A0)
- pascal OSErr ReadDateTime(unsigned long *time)
- = 0xA039;
- #pragma parameter GetDateTime(__A0)
- pascal void GetDateTime(unsigned long *secs)
- = {0x20B8,0x020C};
- #pragma parameter __D0 SetDateTime(__D0)
- pascal OSErr SetDateTime(unsigned long time)
- = 0xA03A;
- #pragma parameter SetTime(__A0)
- pascal void SetTime(const DateTimeRec *d)
- = {0xA9C7,0xA03A};
- #pragma parameter GetTime(__A0)
- pascal void GetTime(DateTimeRec *d)
- = {0x2038,0x020C,0xA9C6};
- pascal void DateToSeconds(const DateTimeRec *d,unsigned long *secs);
- pascal void Date2Secs(const DateTimeRec *d,unsigned long *secs);
- #pragma parameter SecondsToDate(__D0,__A0)
- pascal void SecondsToDate(unsigned long secs,DateTimeRec *d)
- = 0xA9C6;
- #pragma parameter Secs2Date(__D0,__A0)
- pascal void Secs2Date(unsigned long secs,DateTimeRec *d)
- = 0xA9C6;
-
- #define GetSysPPtr() ((SysPPtr) 0x01F8)
- pascal void SysBeep(short duration)
- = 0xA9C8;
- #pragma parameter __D0 DTInstall(__A0)
- pascal OSErr DTInstall(QElemPtr dtTaskPtr)
- = 0xA082;
- #define GetMMUMode() (* (char*) 0x0CB2)
- #pragma parameter SwapMMUMode(__A0)
- pascal void SwapMMUMode(char *mode)
- = {0x1010,0xA05D,0x1080};
- #if SystemSixOrLater
- #pragma parameter __D0 SysEnvirons(__D0,__A0)
- pascal OSErr SysEnvirons(short versionRequested,SysEnvRec *theWorld)
- = 0xA090;
- #else
- pascal OSErr SysEnvirons(short versionRequested,SysEnvRec *theWorld);
- #endif
- #pragma parameter Delay(__A0,__A1)
- pascal void Delay(long numTicks,long *finalTicks)
- = {0xA03B,0x2280};
- #pragma parameter __A0 GetTrapAddress(__D0)
- pascal long GetTrapAddress(short trapNum)
- = 0xA146;
- #pragma parameter SetTrapAddress(__A0,__D0)
- pascal void SetTrapAddress(long trapAddr,short trapNum)
- = 0xA047;
- pascal long NGetTrapAddress(short trapNum,TrapType tTyp);
- pascal void NSetTrapAddress(long trapAddr,short trapNum,TrapType tTyp);
- #pragma parameter __A0 GetOSTrapAddress(__D0)
- pascal long GetOSTrapAddress(short trapNum)
- = 0xA346;
- #pragma parameter SetOSTrapAddress(__A0,__D0)
- pascal void SetOSTrapAddress(long trapAddr,short trapNum)
- = 0xA247;
- #pragma parameter __A0 GetToolTrapAddress(__D0)
- pascal long GetToolTrapAddress(short trapNum)
- = 0xA746;
- #pragma parameter SetToolTrapAddress(__A0,__D0)
- pascal void SetToolTrapAddress(long trapAddr,short trapNum)
- = 0xA647;
- #pragma parameter __A0 GetToolboxTrapAddress(__D0)
- pascal long GetToolboxTrapAddress(short trapNum)
- = 0xA746;
- #pragma parameter SetToolboxTrapAddress(__A0,__D0)
- pascal void SetToolboxTrapAddress(long trapAddr,short trapNum)
- = 0xA647;
- pascal OSErr WriteParam(void);
- #pragma parameter Enqueue(__A0,__A1)
- pascal void Enqueue(QElemPtr qElement,QHdrPtr qHeader)
- = 0xA96F;
- #pragma parameter __D0 Dequeue(__A0,__A1)
- pascal OSErr Dequeue(QElemPtr qElement,QHdrPtr qHeader)
- = 0xA96E;
- long SetCurrentA5(void)
- = {0x200D,0x2A78,0x0904};
- #pragma parameter __D0 SetA5(__D0)
- long SetA5(long newA5)
- = 0xC18D;
- pascal void Environs(short *rom,short *machine);
- pascal OSErr HandToHand(Handle *theHndl);
- #pragma parameter __D0 PtrToXHand(__A0,__A1,__D0)
- pascal OSErr PtrToXHand(const void *srcPtr,Handle dstHndl,long size)
- = 0xA9E2;
- pascal OSErr PtrToHand(const void *srcPtr,Handle *dstHndl,long size);
- #pragma parameter __D0 HandAndHand(__A0,__A1)
- pascal OSErr HandAndHand(Handle hand1,Handle hand2)
- = 0xA9E4;
- #pragma parameter __D0 PtrAndHand(__A0,__A1,__D0)
- pascal OSErr PtrAndHand(const void *ptr1,Handle hand2,long size)
- = 0xA9EF;
- #pragma parameter __D0 InitUtil
- pascal OSErr InitUtil(void)
- = 0xA03F;
- pascal Boolean SwapInstructionCache(Boolean cacheEnable);
- pascal void FlushInstructionCache(void);
- pascal Boolean SwapDataCache(Boolean cacheEnable);
- pascal void FlushDataCache(void);
-
- pascal void ReadLocation(MachineLocation *loc)
- = {0x205F,0x203C,0x000C,0x00E4,0xA051};
- pascal void WriteLocation(const MachineLocation *loc)
- = {0x205F,0x203C,0x000C,0x00E4,0xA052};
-
- #ifdef __cplusplus
- }
- #endif
-
- #endif
-